import terser from '@rollup/plugin-terser'
import { devPlugins, mergePlugins } from './rollup.plugin.js'

const isDev = process.env.NODE_ENV === 'development'
console.log(isDev)

// 1.多入口 多文件 多格式
// const config = [
//   {
//     input: 'src/index.js',
//     output: [
//       {
//         file: 'dist/index.js',
//         name: 'MyIndex',
//         format: 'umd',
//       }
//     ],
//     plugins: []
//   },
//   {
//     input: 'src/other.js',
//     output: [
//       {
//         file: 'dist/other.js',
//         name: 'MyOther',
//         format: 'es',
//       }
//     ],
//     plugins: []
//   },
// ]

// 2.单入口 多格式
const config = {
  // 单入口
  input: 'src/index.js',
  // 多入口
  // input: {
  //   index: 'src/index.js',
  //   other: 'src/other.js'
  // },
  // 数组格式打包多个文件格式 
  output: [
    /* {
      // 打包目录(多入口使用)
      // dir: 'dist',
      // 打包文件名(单入口使用)
      file: 'dist/index.js',
      // iife | umd 格式下需要指定全局变量名(文件有模块导出才会生效)
      name: 'MyIndex',
      // 打包的格式 umd(amd,cjs,iife) es
      format: 'umd',
      sourcemap: true,
      // iife | umd 格式下才会生效
      globals: {
        // key需与排除的名称相同, value为挂载到全局对象的名称
        vue: 'Vue'
      },
      // plugins: [
      //   // 单独对该模式进行压缩
      //   terser()
      // ] 
    }, */
    {
      // file: 'dist/index_es.js',
      dir: 'dist',
      format: 'es',
      // 手动分割chunks(只能在esm格式下使用)
      manualChunks: {
        'vue': ['vue']
      },
      banner: '/* 文件最顶部的注释 */',
      footer: '/* 文件最底部的注释 */'
      // sourcemap: true
    }
  ],
  plugins: isDev ? devPlugins : mergePlugins,
  // 排除第三方包, 通过cdn引入(需在output声明全局变量)
  // external: [
  //   'vue'
  // ]
}
export default config